package com.xnj.filedemo;

import java.io.File;

public class FileTest {
    public static void main(String[] args) {
        // File可以代表一个文件，
        /* 文件路径符的表达方式有三种
          File file1 = new File("D:\\测试文件1.txt");  使用双反斜杠，斜杠是转义字符，需要使用双反斜杠
          File file1 = new File("D:/测试文件1.txt"); 使用反斜杠，反斜杠是普通字符，不需要使用双反斜杠
          File file1 = new File("D:"+File.separator+"测试文件1.txt"); 使用File.separator，根据系统自动选择
         */
        File file1 = new File("D:\\测试文件1.txt");


        // 判断文件是否存在
        System.out.println(file1.exists());// true

        // 文件的字节大小
        System.out.println(file1.length()); // 14

        // 即使文件不存在，也可以创建文件对象
        File file2 = new File("D:\\测试文件2.txt");
        System.out.println(file2.exists()); // false

        // File也可以代表一个文件夹
        File dir = new File("D:/测试文件夹");
        // 输出的是文件夹自身的大小，并不加上文件夹内文件的大小
        System.out.println(dir.length()); // 0

        /* 绝对路径和相对路径
          绝对路径：从盘符开始，一直到文件或者文件夹，使用反斜杠或者双反斜杠
          相对路径：从当前目录开始，一直到文件或者文件夹，使用反斜杠或者双反斜杠
          下面的例子为java项目src目录下创建了一个test.txt
         */
        File file3 = new File("src/test.txt"); // 相对路径
        File file4 = new File("D:\\code\\JavaIODemo\\src\\test.txt"); // 绝对路径
        System.out.println(file3.length() == file4.length()); // true
    }
}
